package com.kapcb.assemble.strategy;

import java.util.function.Consumer;
import java.util.function.Function;

/**
 * <a>Title: IStrategy </a>
 * <a>Author: Kapcb <a>
 * <a>Description: IStrategy <a>
 *
 * @author Kapcb
 * @version 1.0
 * @date 2024/4/17 22:33
 * @since 1.0
 */
public interface IStrategy {

    /**
     * 执行无返回值的策略方法
     *
     * @param bizCode  策略业务
     * @param consumer
     * @param <T>>     泛型
     */
    <T> void accept(String bizCode, Consumer<T> consumer);

    /**
     * 执行有返回值的方法
     *
     * @param bizCode
     * @param function
     * @param <T>
     * @param <R>
     * @return
     */
    <T, R> R apply(String bizCode, Function<T, R> function);

}
